#include "ArchivoConfg.h"


void cargarConfiguracion(char* ArrayConf[16], char* ArrayConfAlgoritmo[16])
{
	//int32_t i=0;
	for(int i=0;i<16;i++)
	{
		ArrayConf[i]=(char*)malloc(55);
		ArrayConfAlgoritmo[i]=(char*)malloc(55);
	}
	ArrayConf[0]=buscacfg("ModoInicio");
	ArrayConfAlgoritmo[0]=buscacfg("ModoInicio");
	printf("Modo de Inicio:%s\n",ArrayConf[0]);
	ArrayConf[1]=buscacfg("Algoritmo");
	ArrayConfAlgoritmo[1]=buscacfg("Algoritmo");
	printf("Algoritmo:%s\n",ArrayConf[1]);
	ArrayConf[2]=buscacfg("Puerto");
	ArrayConfAlgoritmo[2]=buscacfg("Puerto");
	printf("Puerto:%s\n",ArrayConf[2]);
	ArrayConf[3]=buscacfg("Log");
	printf("Log:%s\n",ArrayConf[3]);
	ArrayConfAlgoritmo[3]=buscacfg("Log");
	ArrayConf[4]=buscacfg("Nombre");
	printf("Nombre:%s\n",ArrayConf[4]);
	ArrayConfAlgoritmo[4]=buscacfg("Nombre");
	ArrayConf[5]=buscacfg("Sectores");
	ArrayConfAlgoritmo[5]=buscacfg("Sectores");
	printf("Sectores:%s\n",ArrayConf[5]);
	ArrayConf[6]=buscacfg("Lectura");
	ArrayConfAlgoritmo[6]=buscacfg("Lectura");
	printf("Tiempo Lectura:%s\n",ArrayConf[6]);
	ArrayConf[7]=buscacfg("Escritura");
	ArrayConfAlgoritmo[7]=buscacfg("Escritura");
	printf("Tiempo Escritura:%s\n",ArrayConf[7]);
	ArrayConf[8]=buscacfg("RPM");
	ArrayConfAlgoritmo[8]=buscacfg("RPM");
	printf("RPM:%s\n",ArrayConf[8]);
	ArrayConf[9]=buscacfg("SaltoPista");
	ArrayConfAlgoritmo[9]=buscacfg("SaltoPista");
	printf("Tiempo Salto Pista:%s\n",ArrayConf[9]);
	ArrayConf[10]=buscacfg("IPRaid");
	ArrayConfAlgoritmo[10]=buscacfg("IPRaid");
	printf("IPRaid:%s\n",ArrayConf[10]);
	ArrayConf[11]=buscacfg("PuertoRaid");
	ArrayConfAlgoritmo[11]=buscacfg("PuertoRaid");
	printf("PuertoRaid:%s\n",ArrayConf[11]);
	ArrayConf[12]=buscacfg("Cilindros");
	ArrayConfAlgoritmo[12]=buscacfg("Cilindros");
	printf("Cilindros:%s\n",ArrayConf[12]);
	ArrayConf[13]=buscacfg("Libre");
	ArrayConfAlgoritmo[13]=buscacfg("Libre");
	ArrayConf[14]=buscacfg("DelayW");
	ArrayConfAlgoritmo[14]=buscacfg("DelayW");
	printf("DelayW:%s\n",ArrayConf[14]);
	ArrayConf[15]=buscacfg("DelayR");
	ArrayConfAlgoritmo[15]=buscacfg("DelayR");
	printf("DelayR:%s\n",ArrayConf[15]);

}

char* buscacfg (char* cad) {

	FILE* archivo;
	char* loc = (char*) malloc (128);
	char* buffer = (char*) malloc (128);   // reserva de memoria
	
	archivo = fopen("conf.ini","r");   // abre el archivo
	if(archivo == NULL)
		printf("el archivo no se encuentra");	// error de apertura
	while(feof(archivo) == 0 ) {		// mientras se pueda leer el archivo
		fscanf(archivo,"%s",buffer);	// se lee
		loc = strstr(buffer,cad);	// se localiza en el stream la palabra clave
		if(loc != NULL) {		// si se localizo loc != NULL
			cad = strstr(buffer,"]=");	// se localiza el final de la estructura
			loc = NULL;			// cambio el puntero a NULL para no perder la info para el return
			buffer = NULL;
			free(buffer);			
			free(loc);			// se libera la memoria
			fclose(archivo);		// se cierra el archivo
			return cad+2;			// se suma 2 al puntero por la perdida de la estructura
		}
	}
	if (loc == NULL) {			// si no se encontro la palabra clave

		free(buffer);
		free(loc);
		fclose(archivo);

		}
	return "0";	// se libera lla memoria, se cierra el archivo y devuelve "CFG No encontrada"
}			/* al utilizar esta funcion es necesario que el parametro que utiliza 
			sea los mas parecido posible al string que aparece en el archivo de configuracion
			por ejemplo si llega al parametro KSS, y en el archivo esta [KSS1]:123123 y [KSS2]:090898
			retornara el primer valor que encuentre. */





		 
